# To change this template, choose Tools | Templates
# and open the template in the editor.

__author__="Ronald"
__date__ ="$25-04-2010 06:38:12 PM$"

from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.raw.GLUT import glutWireCone
from OpenGL.raw.GLUT import glutWireCube
from numpy import *
# import sys
# import math

windowId = -1
WIDTH = 800
HEIGHT = 600

PELVIS = 8
HIP = 0
KNEE = 0
ANGLE = 10

class Leg(object):

    def __init__(self, size, position):
        self.size = size
        self.position = position

    def draw(self):

#        glTranslatef (self.position[0], self.position[1], self.position[2])
#
#        glPushMatrix()
#        glScalef(self.size, self.size, self.size)
#        glTranslatef (self.position[0], self.position[1], self.position[2])
#        glTranslatef(0.0, -0.3, 0.0)
#        glRotatef(90, 1.0, 0.0, 0.0)
#        glutSolidCone(0.5, 0.5, 8, 10)
#        glPopMatrix()

#        glLoadIdentity()                # clear the matrix
        glPushMatrix()
        glScalef(self.size, self.size, self.size)
        glTranslatef (self.position[0], self.position[1], self.position[2])
        glColor3f (1.0, 1.0, 1.0)        # Color blanco
        glRotatef(ANGLE, 0.0, 0.0, 1.0)
        glRotatef(HIP, 1.0, 0.0, 0.0)    # Rotacion pierna en eje x
        glTranslatef (0.2, -0.8, 0.0)    # Me muevo hacia abajo
        glScalef(1.0, 2.0, 1.0)          # Agrando en eje y para que sea rectangulo
        glutSolidCube(0.4)                # Dibujo femur
#
        glColor3f (1.0, 1.0, 1.0)        # Color blanco
        glRotatef (KNEE, 1.0, 0.0, 0.0)  # Rotacion rodilla en eje x
        glTranslatef (0.0, -0.4, 0.0)    # Bajo para dibujar pantorrilla
        glColor3f (0.0, 0.0, 1.0)        # color azul
        #glScalef(0.7, 0.8, 0.7)
        glutSolidCube(0.6)                # dibujo pantorrilla
        glPopMatrix()
#
#
        glPushMatrix()
        glScalef(self.size, self.size, self.size)
        glTranslatef (self.position[0], self.position[1], self.position[2])
        glColor3f (1.0, 1.0, 1.0)        # Color blanco
        glRotatef(-ANGLE, 0.0, 0.0, 1.0)
        glRotatef(HIP, 1.0, 0.0, 0.0)    # Rotacion pierna en eje x
        glTranslatef (-0.2, -0.8, 0.0)    # Me muevo hacia abajo
        glScalef(1.0, 2.0, 1.0)          # Agrando en eje y para que sea rectangulo
        glutSolidCube(0.4)                # Dibujo femur
#
        glColor3f (1.0, 1.0, 1.0)        # Color blanco
        glRotatef (KNEE, 1.0, 0.0, 0.0)  # Rotacion rodilla en eje x
        glTranslatef (0.0, -0.4, 0.0)    # Bajo para dibujar pantorrilla
        glColor3f (0.0, 0.0, 1.0)        # color azul
        #glScalef(0.7, 0.8, 0.7)
        glutSolidCube(0.6)                # dibujo pantorrilla

        glPopMatrix()

    def kneeAdd(self):
        global KNEE
        if (KNEE < 90):
            KNEE = KNEE + 5

    def kneeSubstract(self):
        global KNEE
        if (KNEE > 0):
            KNEE = KNEE - 5

    def hipAdd(self):
        global HIP
        if (HIP < 40.5):
            HIP = HIP + 5

    def hipSubstract(self):
        global HIP
        if (HIP > -40.5):
            HIP = HIP - 5

    def angleAdd(self):
        global ANGLE
        if (ANGLE < 20):
            ANGLE = ANGLE + 5

    def angleSubstract(self):
        global ANGLE
        if (ANGLE > 5):
            ANGLE = ANGLE - 5